/**
 * @name        sfxObject
 * @author      shenyc
 * @date        2021-08-10
 * @copyright   Copy right (c) shenyc (shenyczz@163.com).
 *              All rights reserved.
 *
 ******************************************************************************/
// {{@@@}}
"use strict";
// ----------------------------------------------------------------------------
export default abstract class sfxObject {
    constructor(parameters?: any) {
        this._className = this.constructor.name;
        this._name = this._className;
    }

    private _name: string;
    private _className: string;

    // 属性
    public get Name() {
        return this._name;
    }
    public set Name(val: string) {
        this._name = val;
    }
    /** 类名称 */
    public get ClassName() {
        return this._className;
    }

    /** 初始化 */
    public abstract init(): void;

    // {{END}}
}

// 属性接口
interface IProperty {
    firstName: string;
    lastName?: string; // 带 '?' 表示可选属性
}

// 函数类型接口
interface IFunction {
    (firstName: string, lastName: string): string;
}

// 索引接口
interface IKeyValue {
    [index: number]: string; // 限制key为number、值为string
}

// 类接口
interface IClass {
    firstName: string;
    lastName: string;
    fullName(): string;
    get ClassName(): string;
}

// ----------------------------------------------------------------------------
// {{@@@}}
